/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xenon3d.vector;

/**
 * Interface for tuples that can be normalized.
 * @author Volker Everts
 * @version 0.1 - 18.09.2011: Created
 */
public interface Normalizable {

    /**
     * Normalizes the Normalizable (i.e. a vector) in place.
     */
    public void normalize();

    /**
     * Returns the norm of the Normalizable (i.e. the length of a vector).
     * @return the norm
     */
    public float norm();

    /**
     * Returns the squared norm of the Normalizable (i.e. the squared length of
     * a vector).
     * @return the squared norm
     */
    public float normSq();

} // end interface Normalizable